/*
Copyright (C) 2022-2024 Inspur Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
*/
package entity

import "time"

type IcepUser struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	TenantId    string    `json:"tenantId" xorm:"varchar(36) not null"`
	UserType    string    `json:"userType" xorm:"char(1) not null"`
	Phone       string    `json:"phone" xorm:"varchar(15) default null"`
	Mail        string    `json:"mail" xorm:"varchar(64) default null"`
	Password    string    `json:"password" xorm:"varchar(32) not null"`
	PrvKey      string    `json:"prvKey" xorm:"varchar(2048) not null"`
	PubKey      string    `json:"pubKey" xorm:"varchar(2048) not null"`
	Status      string    `json:"status" xorm:"char(1) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepTenant struct {
	Id           string    `json:"id" xorm:"varchar(36) not null"`
	IbaasUserId  string    `json:"ibaasUserId" xorm:"varchar(36) not null"`
	LeagueName   string    `json:"leagueName" xorm:"varchar(100) not null"`
	OrgName      string    `json:"orgName" xorm:"varchar(100) not null"`
	ChainName    string    `json:"chainName" xorm:"varchar(36) not null"`
	EnrollSecret string    `json:"enrollSecret" xorm:"varchar(32) not null"`
	CreatedTime  time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime  time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepTenantIdentity struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	TenantId    string    `json:"tenantId" xorm:"varchar(36) not null"`
	PrvKey      string    `json:"prvKey" xorm:"varchar(2048) not null"`
	PubKey      string    `json:"pubKey" xorm:"varchar(2048) not null"`
	Cert        string    `json:"cert" xorm:"varchar(2048) not null"`
	Status      string    `json:"status" xorm:"char(1) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepMenu struct {
	Id           string    `json:"id" xorm:"varchar(36) not null"`
	ParentId     string    `json:"parentId" xorm:"varchar(36) not null"`
	MenuName     string    `json:"menuName" xorm:"varchar(32) not null"`
	MenuPath     string    `json:"menuPath" xorm:"varchar(128) not null"`
	MenuLevel    int       `json:"menuLevel" xorm:"int not null"`
	IsLeaf       string    `json:"isLeaf" xorm:"char(1) not null"`
	Seq          int       `json:"seq" xorm:"int not null"`
	PersonAccess string    `json:"personAccess" xorm:"char(1) not null"`
	OrgAccess    string    `json:"orgAccess" xorm:"char(1) not null"`
	AdminAccess  string    `json:"adminAccess" xorm:"char(1) not null"`
	MenuIcon     string    `json:"menuIcon" xorm:"varchar(36) not null"`
	CreatedTime  time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime  time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepDataEvidence struct {
	Id           string    `json:"id" xorm:"varchar(36) not null"`
	UserId       string    `json:"userId" xorm:"varchar(36) not null"`
	IdentityId   string    `json:"identityId" xorm:"varchar(36) not null"`
	EvidenceName string    `json:"evidenceName" xorm:"varchar(100) not null"`
	UseEncrypt   string    `json:"useEncrypt" xorm:"char(1) not null"`
	Status       string    `json:"status" xorm:"char(1) not null"`
	EvidenceCert string    `json:"evidenceCert" xorm:"varchar(128) default null"`
	TxId         string    `json:"txId" xorm:"varchar(64) default null"`
	TxTime       string    `json:"txTime" xorm:"varchar(32) default null"`
	CreatedTime  time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime  time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepSignature struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	EvidenceId  string    `json:"evidenceId" xorm:"varchar(36) not null"`
	Signature   string    `json:"signature" xorm:"varchar(512) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepSecret struct {
	Id            string    `json:"id" xorm:"varchar(36) not null"`
	EvidenceId    string    `json:"evidenceId" xorm:"varchar(36) not null"`
	UserId        string    `json:"userId" xorm:"varchar(36) not null"`
	EncryptSecret string    `json:"encryptSecret" xorm:"varchar(64) not null"`
	CreatedTime   time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime   time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepFileEvidence struct {
	Id           string    `json:"id" xorm:"varchar(36) not null"`
	UserId       string    `json:"userId" xorm:"varchar(36) not null"`
	IdentityId   string    `json:"identityId" xorm:"varchar(36) not null"`
	EvidenceName string    `json:"evidenceName" xorm:"varchar(100) not null"`
	EvidenceType string    `json:"evidenceType" xorm:"char(1) not null"`
	UseEncrypt   string    `json:"useEncrypt" xorm:"char(1) not null"`
	Status       string    `json:"status" xorm:"char(1) not null"`
	EvidenceCert string    `json:"evidenceCert" xorm:"varchar(128) default null"`
	TxId         string    `json:"txId" xorm:"varchar(64) default null"`
	TxTime       string    `json:"txTime" xorm:"varchar(32) default null"`
	CreatedTime  time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime  time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepFileEvidenceDetail struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	EvidenceId  string    `json:"evidenceId" xorm:"varchar(36) not null"`
	FileName    string    `json:"fileName" xorm:"varchar(36) not null"`
	FileHash    string    `json:"fileHash" xorm:"varchar(64) not null"`
	FileUrl     string    `json:"fileUrl" xorm:"varchar(128) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepObtainEvidence struct {
	Id           string    `json:"id" xorm:"varchar(36) not null"`
	UserId       string    `json:"userId" xorm:"varchar(36) not null"`
	IdentityId   string    `json:"identityId" xorm:"varchar(36) not null"`
	EvidenceName string    `json:"evidenceName" xorm:"varchar(100) not null"`
	Description  string    `json:"description" xorm:"varchar(200) default null"`
	ObtainUrl    string    `json:"obtainUrl" xorm:"varchar(128) not null"`
	ObtainType   string    `json:"obtainType" xorm:"char(1) not null"`
	Status       string    `json:"status" xorm:"char(1) not null"`
	EvidenceCert string    `json:"evidenceCert" xorm:"varchar(128) default null"`
	TxId         string    `json:"txId" xorm:"varchar(64) default null"`
	TxTime       string    `json:"txTime" xorm:"varchar(32) default null"`
	CreatedTime  time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime  time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepObtainEvidenceDetail struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	ObtainId    string    `json:"obtainId" xorm:"varchar(36) not null"`
	FileName    string    `json:"fileName" xorm:"varchar(36) not null"`
	FileHash    string    `json:"fileHash" xorm:"varchar(64) not null"`
	FileUrl     string    `json:"fileUrl" xorm:"varchar(128) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepRealNamePerson struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	UserId      string    `json:"userId" xorm:"varchar(36) not null"`
	PersonName  string    `json:"personName" xorm:"varchar(10) not null"`
	PersonId    string    `json:"personId" xorm:"varchar(18) not null"`
	IdCardFront string    `json:"idCardFront" xorm:"varchar(128) not null"`
	IdCardBack  string    `json:"idCardBack" xorm:"varchar(128) not null"`
	Status      string    `json:"status" xorm:"char(1) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepRealNameOrg struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	UserId      string    `json:"userId" xorm:"varchar(36) not null"`
	OrgName     string    `json:"orgName" xorm:"varchar(32) not null"`
	OrgCode     string    `json:"orgCode" xorm:"varchar(32) not null"`
	LegalPerson string    `json:"legalPerson" xorm:"varchar(10) not null"`
	PersonId    string    `json:"personId" xorm:"varchar(18) not null"`
	OrgLicense  string    `json:"orgLicense" xorm:"varchar(128) not null"`
	IdCardFront string    `json:"idCardFront" xorm:"varchar(128) not null"`
	IdCardBack  string    `json:"idCardBack" xorm:"varchar(128) not null"`
	Status      string    `json:"status" xorm:"char(1) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepChainConsenser struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	TenantId    string    `json:"tenantId" xorm:"varchar(36) not null"`
	Name        string    `json:"name" xorm:"varchar(64) not null"`
	Host        string    `json:"host" xorm:"varchar(32) not null"`
	Port        string    `json:"port" xorm:"varchar(10) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepChainOrg struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	TenantId    string    `json:"tenantId" xorm:"varchar(36) not null"`
	OrgName     string    `json:"orgName" xorm:"varchar(64) not null"`
	IamId       string    `json:"iamId" xorm:"varchar(64) not null"`
	CryptoPath  string    `json:"cryptoPath" xorm:"varchar(256) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}

type IcepChainNode struct {
	Id          string    `json:"id" xorm:"varchar(36) not null"`
	OrgId       string    `json:"orgId" xorm:"varchar(36) not null"`
	Name        string    `json:"name" xorm:"varchar(64) not null"`
	Host        string    `json:"host" xorm:"varchar(32) not null"`
	Port        string    `json:"port" xorm:"varchar(10) not null"`
	CreatedTime time.Time `json:"createdTime" xorm:"timestamp not null"`
	UpdatedTime time.Time `json:"updatedTime" xorm:"timestamp not null"`
}
